package com.freemalll.merchant.domain.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.freemalll.merchant.common.AbstractBaseEntity;
import com.freemalll.merchant.common.CompareField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * <p>
 * 商户营业执照信息
 * </p>
 *
 * @author songshixiong
 * @since 2025-06-04
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("mer_license")
@Schema(description = "商户营业执照信息")
public class MerLicense extends AbstractBaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    @Schema(description = "主键")
    @TableId(value = "license_id", type = IdType.ASSIGN_UUID)
    @CompareField(value = "license_id", skip = true)
    private String licenseId;

    @Schema(description = "工商状态")
    @TableField("business_status")
    @CompareField("business_status")
    private String businessStatus;

    @Schema(description = "所属商户")
    @TableField("mer_id")
    @CompareField(value = "mer_id", skip = true)
    private String merId;

    @Schema(description = "信用代码")
    @TableField("license_code")
    @CompareField("license_code")
    private String licenseCode;

    @Schema(description = "商户名称")
    @TableField("license_name")
    @CompareField("license_name")
    private String licenseName;

    @Schema(description = "商户简称")
    @TableField("license_short_name")
    @CompareField("license_short_name")
    private String licenseShortName;

    @Schema(description = "法人代表")
    @TableField("license_legal_man")
    @CompareField("license_legal_man")
    private String licenseLegalMan;

    @Schema(description = "注册资本")
    @TableField("license_capital")
    @CompareField("license_capital")
    private BigDecimal licenseCapital;

    @Schema(description = "工商类型")
    @TableField("license_type")
    @CompareField("license_type")
    private String licenseType;

    @Schema(description = "成立日期")
    @TableField("license_register_date")
    @CompareField("license_register_date")
    private String licenseRegisterDate;

    @Schema(description = "营业执照有效日期起")
    @TableField("license_validate_start")
    @CompareField("license_validate_start")
    private String licenseValidateStart;

    @Schema(description = "营业执照有效日期止")
    @TableField("license_validate_end")
    @CompareField("license_validate_end")
    private String licenseValidateEnd;

    @Schema(description = "商户注册省份")
    @TableField("license_province")
    @CompareField("license_province")
    private String licenseProvince;

    @Schema(description = "商户注册市")
    @TableField("license_city")
    @CompareField("license_city")
    private String licenseCity;

    @Schema(description = "商户注册区")
    @TableField("license_country")
    @CompareField("license_country")
    private String licenseCountry;

    @Schema(description = "商户注册地址")
    @TableField("license_address")
    @CompareField("license_address")
    private String licenseAddress;

    @Schema(description = "经营范围")
    @TableField("license_run_range")
    @CompareField("license_run_range")
    private String licenseRunRange;

    @Schema(description = "商户码")
    @TableField("mer_chant_code")
    @CompareField("mer_chant_code")
    private String merchantCode;

}
